package com.itheima.d3_method_references;

/**
 * 目标：构造器引用(理解语法)
 */
public class Test3 {
    public static void main(String[] args) {
        // 0 匿名内部类
        /*CreateCar c = new CreateCar() {
            @Override
            public Car create(String name, double price) {
                return new Car(name, price);
            }
        };
        Car car = c.create("宝马",30);
        System.out.println(car);
        */
        // 1 使用lambda表达式
//        CreateCar cc = (name,price)->
//            new Car(name,price)
//        ;
//        Car car1 = cc.create("法拉利",20);
//        System.out.println(car1);
        // 2 使用构造器引用
        CreateCar cc1 = Car::new;
        Car car2 = cc1.create("阿尔法罗密欧",40);
        System.out.println(car2);

    }
}

interface CreateCar {
    // 抽象方法 : 接受两个参数 , 创建Car对象并返回
    Car create(String name, double price);
}